package org.bagou.proj.plugin


import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.ProjectConfigurationException

class TinyPngPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {// 在build.gradle中执行到apply plugin: '***'时就会调用执行到TinyPngPlugin的apply方法。
        // CompressionExt相当于javabean对象，然后再注册到project的扩展属性。
//        project.extensions.create("imgCompressionExt", CompressionExt.class)

        // 因此，该方法是在配置执行时就会调用的。
        if (!project.plugins.hasPlugin("com.android.application")) {
            // 如果不是主工程模块，则抛出异常
            throw new ProjectConfigurationException("plugin:com.android.application must be apply", null)
        }
        // 第一种注册方式
//        def android = project.extensions.findByType(AppExtension.class)
//        android.registerTransform(new TinyPngPluginTransform(project))


        // 第二种注册方式
        project.android.registerTransform(new TinyPngPluginTransform(project))
    }
}